Computer programming (i.e., programming for a computer, a processor, a controller, etc.) is typically written in the form of a series of lines of commands, where the commands are drawn from a pre-defined set of operation codes. As but one simple example, to count from 1 to 100, the following more-or-less generic program `COUNT` could be employed:
BEGIN COUNT PA1 DEFINE X INTEGER PA1 X=1 PA1 DO UNTIL X=100 PA1 END DO PA1 END COUNT Typically, a program is written in a pre-defined language as source code, and is then compiled into a binary code that a computer processor, a controller, or the like can directly process. Such compiling usually takes place before the program is run, but can also occur during such run time.
X=X+1
As part of the compiling process, the source code is typically reviewed for errors, including syntactical errors and the like. For example, a compiler may check that a cited variable is previously defined, that a looping structure includes a defined beginning and a corresponding defined end, that all required parameters for an operation code are present, etc. Accordingly, a programmer can be advised of and can correct such errors.
However, detecting such errors at compile time can be cumbersome, especially if the programming code is long and the process of addressing compile time errors requires several iterations of compiling, program code checking, and modifying. Moreover, many of the errors that are detected at compile time could instead be avoided during writing of the program if only an appropriate device were available to do error checking and/or prevention during such program time. Accordingly, a need exists for such a device.
In writing a program, significant training is usually necessary in order to understand each operation code, the requirements necessary to combine the operation codes into a working form, and the various and sundry peculiarities of such programming. For example, while a typical programmer and perhaps even a layperson can understand the above-specified `COUNT` program, to convert such program to a particular programming language, a programmer must know: proper beginning and ending structures in the language; proper ways to declare variables in the language; available looping structures in the language; proper ways to implement the available looping structures, including available looping conditions; and proper ways to increment a variable in the language, among other things.
Moreover, the programmer must know such arcane matters as whether operation codes and/or variables are case-sensitive; whether a variable, the variable value, and/or variable type information can be passed into one program from a call from another program; and whether a variable of one type can accept a value of another type, among other things. Clearly, the time necessary to learn programming in any particular language, let alone several different languages, can be excessive. Moreover, the investment of time may not be worthwhile, especially for an individual who is only an occasional programmer, or who does not wish to create programming code, but instead merely wishes to modify a portion of such programming code. Accordingly, a need exists for a device that assists a layperson or even a programmer in creating or modifying lines of programming code without requiring such layperson or programmer to have extensive knowledge in a particular programming language.